home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
commodore-users-of-norman
/
CUON_14_(11-1984).d64
/
dir list trk_sec
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
4KB
|
204 lines
100 REM INITIALIZATION
101 :
102 DIM D$(255), T$(4), E$(31)
103 T$(0)="D":T$(1)="S":T$(2)="P"
104 T$(3)="U":T$(4)="R":DI$="":ID$=""
105 POKE53280,6:POKE53281,6
106 PRINTCHR$(5)
107 S$="[160]":NL$=CHR$(0):DT=18:DB=0:P=3
108 :
109 REM HOUSEKEEPING
110 :
111 OPEN15,8,15,"I0":GOSUB209:PRINT"[147];"
112 PRINT"[147]DO YOU WANT HARDCOPY? ";
113 GOSUB246:IFW$="Y"THENP=4
114 IFP<>4THEN129
115 PRINT"SMART ASCII ACTIVE? ";
116 GOSUB246:IFW$="N"THEN119
117 X=PEEK(55)+256*PEEK(56)
118 POKEX,0:POKEX+1,0
119 PRINT"EPSON TYPE PRINTER? ";
120 GOSUB246:IFW$="N"THEN129
121 PRINT"COMPRESSED FORMAT? ";
122 GOSUB246
123 IFW$="N"THENW$=CHR$(18)
124 IFW$="Y"THENW$=CHR$(15)
125 OPEN4,4:PRINT#4,W$:CLOSE4
126 :
127 REM OPEN FILES
128 :
129 OPEN4,P:GOSUB209
130 OPEN5,8,5,"#1":GOSUB209
131 OPEN6,8,6,"#2":GOSUB209
132 :
133 REM GET DISK TITLE AND ID
134 :
135 GOSUB201
136 FORX=144TO160
137 DI$=DI$+D$(X):NEXT
138 FORX=162TO163
139 ID$=ID$+D$(X):NEXT:PRINT"[147]";
140 :
141 REM PRINT HEADER INFORMATION
142 :
143 PRINT#4,DI$"T # LOCATIONS LOAD"
144 PRINT#4,"ID="ID$" Y OF 1ST 2ND ADDR"
145 PRINT#4,"ENTRY NAME P BK TK/SC TK/SC LO/HI":PRINT#4
146 GOSUB201
147 :
148 REM LOOP Z - EACH DIRECTORY ENTRY
149 REM LOOP Y - STORE IN ARRAY E$
150 :
151 FORZ=0TO7:N$=""
152 FORY=0TO31
153 E$(Y)=D$(Z*32+Y):NEXT
154 :
155 REM FORMAT NAME AND FILE TYPE
156 :
157 FORX=5TO20:N$=N$+E$(X):NEXT
158 W$=E$(2)
159 T=ASC(W$)AND127
160 :
161 REM FORMAT NUMBER OF BLOCKS USED
162 :
163 W$=E$(30)
164 LO=ASC(W$)
165 W$=E$(31)
166 HI=ASC(W$)
167 BK=HI*16+LO
168 W=BK:GOSUB225:BK$=S$+W$
169 :
170 REM FORMAT 1ST TRACK AND SECTOR
171 :
172 W$=E$(3)
173 TK=ASC(W$):W=TK:GOSUB225:TK$=S$+W$
174 W$=E$(4)
175 SC=ASC(W$):W=SC:GOSUB225:SC$=S$+W$
176 IFTK=0ANDSC=0THEN196
177 PRINT#4,N$;S$;T$(T);BK$;TK$;SC$;
178 :
179 REM READ THAT TRACK AND SECTOR
180 :
181 PRINT#15,"U1:";6;0;TK;SC
182 GOSUB209
183 :
184 REM FORMAT 1ST FOUR BYTES
185 REM 1&2 NEXT TRACK AND SECTOR
186 REM 3&4 LO/HI LOAD ADDRESS
187 :
188 FORX=1TO4
189 GET#6,W$:V=ASC(W$+CHR$(0))
190 HI=INT(V/16):LO=V-HI*16
191 PRINT#4,S$MID$(WX$,HI+1,1);
192 PRINT#4,MID$(WX$,LO+1,1);
193 NEXT
194 PRINT#4
195 NEXT
196 IFDB<>255THEN146
197 GOTO217
198 :
199 REM READ TRACK AND SECTOR
200 :
201 PRINT#15,"U1:";5;0;DT;DB:GOSUB209
202 FORZ=0TO255
203 GET#5,W$:IFW$=""THENW$=NL$
204 D$(Z)=W$:NEXT
205 DT=ASC(D$(0)):DB=ASC(D$(1)):RETURN
206 :
207 REM CHECK DISK STATUS
208 :
209 INPUT#15,EN,EM$,ET,ES
210 IFEN=0THENRETURN
211 PRINT#4,"ERROR ";EN;EM$;ET;ES
212 PRINT#4
213 PRINT#4,"ERROR ";EN;EM$;ET;ES
214 :
215 REM ALL DONE
216 :
217 PRINT#4:PRINT#4:CLOSE4
218 CLOSE5:CLOSE6:PRINT#15,"IU:":CLOSE15
219 PRINT"RUN AGAIN? ";:GOSUB246
220 IFW$="Y"THENCLR:GOTO100
221 PRINT"[147]";:END
222 :
223 REM DEC TO HEX (ARG=W RESULT=W$)
224 :
225 WX$="0123456789ABCDEF":W$=""
226 IFW<255THEN230
227 W1=INT(W/4096)
228 W2=INT((W-W1*4096)/256)
229 GOSUB231:W=W-W1*4096-W2*256
230 W1=INT(W/16):W2=INT(W-W1*16)
231 W$=W$+MID$(WX$,W1+1,1)
232 W$=W$+MID$(WX$,W2+1,1)
233 RETURN
234 :
235 REM HEX TO DEC (ARG=W$ RESULT=W)
236 :
237 W1=LEN(W$):W=0:IFW$=""THEN242
238 FORW2=W1TO1STEP-1
239 W3=ASC(MID$(W$,W2,1))
240 W4=W3-48:IFW4>9THENW4=W4-7
241 W=W+W4*16^(W1-W2):NEXT
242 RETURN
243 :
244 REM GET (Y)ES OR (N)O
245 :
246 GETW$:IFW$=""THEN246
247 IFW$<>"Y"ANDW$<>"N"THEN246
248 PRINTW$:RETURN
249 :
250 REM GET NUMBERIC (RESULT=W)
251 :
252 W$="":W1$=""
253 GETW$:IFW$=""THEN253
254 IFW$=CHR$(13)THEN258
255 W=ASC(W$)
256 IFW<48ORW>57THEN253
257 W1$=W1$+W$:PRINT#W$;:GOTO253
258 W=VAL(W1$):PRINT#:RETURN
259 :
260 REM GET HEX NUMBER (RESULT=W$)
261 :
262 W$="":W1$=""
263 GETW$:IFW$=""THEN263
264 IFW$=CHR$(13)THEN268
265 W=ASC(W$):IFW<48ORW>70THEN263
266 W=W-48:IFW>9THENW=W-7
267 W1$=W1$+W$:PRINT#W$;:GOTO263
268 IFLEN(W1$)>4THENW1$=RIGHT$(W1$,4)
269 W$=W1$:PRINT#:RETURN
270 :
271 REM TITLE: DIRECTORY LISTER
272 REM AUTHOR: B. SNEED
273 REM DATE: 04/15/83
274 :
275 REM THIS PGM WILL LIST (SCREEN OR
276 REM PRINTER) ALL FILES ON A DISK
277 REM THAT STILL HAVE ENTRIES IN THE
278 REM DIRECTORY. IT SHOWS THE TYPE
279 REM OF FILE, NUMBER OF BLOCKS, THE
280 REM TRACK AND SECTOR OF THE FIRST
281 REM TWO BLOCKS, AND FINALLY THE
282 REM MOST IMPORTANT OF ALL ITEMS
283 REM "THE FILE LOAD ADDRESS"
284 :
285 REM PLEASE NOTE THAT FILES THAT
286 REM HAVE BEEN SCRATCHED AND NOT
287 REM WRITTEN OVER ARE INCLUDED!
288 :
289 REM FILE TYPES ARE:
290 :
291 REM D = DELETED
292 REM S = SEQUENTIAL
293 REM P = PROGRAM
294 REM U = USER
295 REM R = RELATIVE
296 :
297 REM SEE PAGE 56 OF THE VIC-1541
298 REM SINGLE DRIVE FLOPPY DISK
299 REM USER'S MANUAL. TO SPEED UP
300 REM EXECUTION AND LOAD TIME, YOU
301 REM CAN USE VIC-TREE TO DELETE ALL
302 REM REMARKS AND LINES WITH : ONLY.